package com.medi.business.domain;

import com.medi.common.utils.SecurityUtils;
import com.medi.common.utils.uuid.IdUtils;
import lombok.Data;
import com.medi.common.annotation.Excel;
import com.medi.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 用户信息对象 user_info
 * 
 * @author medi
 * @date 2024-09-13
 */
@Data
public class UserInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 用户ID */
    private String id;

    /** 用户姓名 */
    @Excel(name = "用户姓名")
    private String realName;

    /** 用户类型（0系统用户 1移动端用户） */
    @Excel(name = "用户类型", readConverterExp = "0=系统用户,1=移动端用户")
    private String userType;

    /** 用户邮箱 */
    @Excel(name = "用户邮箱")
    private String email;

    /** 手机号码 */
    @Excel(name = "手机号码")
    private String phoneNumber;

    /** 用户性别（0男 1女 2未知） */
    @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
    private String sex;

    /** 头像路径 */
    @Excel(name = "头像路径")
    private String avatar;

    /** 帐号状态（0正常 1停用） */
    @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    @Excel(name = "删除标志", readConverterExp = "0=代表存在,2=代表删除")
    private String isDel;

    /** 所属商户id */
    @Excel(name = "所属商户id")
    private String companyId;

    /** 所属组织id */
    @Excel(name = "所属组织id")
    private String orgId;

    /** 上级商户id */
    @Excel(name = "上级商户id")
    private String pCompanyId;

    /** 上级组织id */
    @Excel(name = "上级组织id")
    private String pOrgId;

    /** 用户登录管理系统的userid */
    @Excel(name = "用户登录管理系统的userid")
    private Long sysUserId;

    /** 管理者id */
    @Excel(name = "管理者id")
    private String mgrUserId;

    /** 上级管理者id */
    @Excel(name = "上级管理者id")
    private String pMgrId;

    /** 商户户号 */
    @Excel(name = "商户户号")
    private String tenantId;

    public void creat() {
        this.setId(IdUtils.fastSimpleUUID());
        this.setCreateTime(new Date());
        this.setCreateBy(SecurityUtils.getNickname());

    }

    public void modif() {
        this.setUpdateTime(new Date());
        this.setUpdateBy(SecurityUtils.getNickname());
    }

}
